﻿Public Class FrmCapNhatThongTinNhaCungCap
    Private flag As Boolean

    Private Sub FrmCapNhatThongTinNhaCungCap_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        LoadDS()
        LockButton(True)
        LockTextbox(False)
    End Sub
    'load danh sach len data table
    Sub LoadDS()
        Dim ds As DataTable
        ds = CapNhatThongTinNCC_DAO.SelectAll()
        dgvTTNhaCungCap.DataSource = ds
    End Sub
    'xóa trắng các textbox
    Sub ClearTextbox()
        txtMaNCC.Text = ""
        txtTenNCC.Text = ""
        txtDiaChi.Text = ""
        txtSDT.Text = ""
        txtSoFax.Text = ""
    End Sub
    'đồng bộ các nút chức năng giống nhau
    Sub LockButton(ByVal bt As Boolean)
        btnThemTTNCC.Enabled = bt
        btnSuaTTNCC.Enabled = bt
        btnXoaTTNCC.Enabled = bt
        btnLuuTTNCC.Enabled = Not bt
        btnKhongLuuTTNCC.Enabled = Not bt
        btnThoat.Enabled = bt
    End Sub
    'lock các textbox 
    Sub LockTextbox(ByVal tb As Boolean)
        txtMaNCC.Enabled = tb
        txtTenNCC.Enabled = tb
        txtDiaChi.Enabled = tb
        txtSDT.Enabled = tb
        txtSoFax.Enabled = tb
        If tb = False Then
            txtMaNCC.BackColor = Color.GreenYellow
            txtTenNCC.BackColor = Color.GreenYellow
            txtDiaChi.BackColor = Color.GreenYellow
            txtSDT.BackColor = Color.GreenYellow
            txtSoFax.BackColor = Color.GreenYellow
        Else
            txtMaNCC.BackColor = Color.White
            txtTenNCC.BackColor = Color.White
            txtDiaChi.BackColor = Color.White
            txtSDT.BackColor = Color.White
            txtSoFax.BackColor = Color.White
        End If
    End Sub
    Sub Them()
        Dim ncc As CapNhatThongTinNCC_DTO = New CapNhatThongTinNCC_DTO()
        ncc.MaNhaCungCap = txtMaNCC.Text
        ncc.TenNhaCungCap = txtTenNCC.Text
        ncc.DiaChi = txtDiaChi.Text
        ncc.SoDT = txtSDT.Text
        ncc.SoFax = txtSoFax.Text
        CapNhatThongTinNCC_DAO.Insert(ncc)
        LoadDS()
    End Sub
    Sub Xoa()
        Dim ncc As CapNhatThongTinNCC_DTO = New CapNhatThongTinNCC_DTO()
        ncc.MaNhaCungCap = txtMaNCC.Text
        CapNhatThongTinNCC_DAO.Delete(ncc)
        LoadDS()
    End Sub
    Sub Sua()
        Dim ncc As CapNhatThongTinNCC_DTO = New CapNhatThongTinNCC_DTO()
        ncc.MaNhaCungCap = txtMaNCC.Text
        ncc.TenNhaCungCap = txtTenNCC.Text
        ncc.DiaChi = txtDiaChi.Text
        ncc.SoDT = txtSDT.Text
        ncc.SoFax = txtSoFax.Text

        CapNhatThongTinNCC_DAO.Update(ncc)
        LoadDS()
    End Sub
    Private Function TestData() As Boolean
        TestData = True
        If Trim(txtMaNCC.Text) = "" Then
            TestData = False
            MsgBox("Nhập mã nhà cung cấp !", MsgBoxStyle.Exclamation, "Thông Báo Lỗi")
            txtMaNCC.Focus()
            Exit Function
        ElseIf Trim(txtTenNCC.Text) = "" Then
            TestData = False
            MsgBox("Nhập tên nhà cung cấp !", MsgBoxStyle.Exclamation, "Thông Báo Lỗi")
            txtTenNCC.Focus()
            Exit Function
        ElseIf Trim(txtDiaChi.Text) = "" Then
            TestData = False
            MsgBox("Nhập địa chỉ nhà cung cấp !", MsgBoxStyle.Exclamation, "Thông Báo Lỗi")
            txtDiaChi.Focus()
            Exit Function
        ElseIf Trim(txtSDT.Text) = "" Then
            TestData = False
            MsgBox("Nhập số điện thoại nhà cung cấp !", MsgBoxStyle.Exclamation, "Thông Báo Lỗi")
            txtSDT.Focus()
        ElseIf Trim(txtSoFax.Text) = "" Then
            TestData = False
            MsgBox("Nhập số fax của nhà cung cấp!", MsgBoxStyle.Exclamation, "Thông Báo Lỗi")
            txtSoFax.Focus()
            Exit Function
        End If
    End Function
    'load các thuộc tính từ lưới lên textbox
    Sub HienThi()
        If (dgvTTNhaCungCap.SelectedRows.Count > 0) Then
            txtMaNCC.Text = dgvTTNhaCungCap.SelectedRows(0).Cells(0).Value.ToString()
            txtTenNCC.Text = dgvTTNhaCungCap.SelectedRows(0).Cells(1).Value.ToString()
            txtDiaChi.Text = dgvTTNhaCungCap.SelectedRows(0).Cells(2).Value.ToString()
            txtSDT.Text = dgvTTNhaCungCap.SelectedRows(0).Cells(3).Value.ToString()
            txtSoFax.Text = dgvTTNhaCungCap.SelectedRows(0).Cells(3).Value.ToString()
        End If
    End Sub

    Private Sub btnThemTTNCC_Click(sender As Object, e As EventArgs) Handles btnThemTTNCC.Click
        flag = True
        LockTextbox(True)
        LockButton(False)
        ClearTextbox()
        dgvTTNhaCungCap.Enabled = False
        txtMaNCC.Focus()
    End Sub

    Private Sub btnSuaTTNCC_Click(sender As Object, e As EventArgs) Handles btnSuaTTNCC.Click
        flag = False
        LockTextbox(True)
        LockButton(False)
        dgvTTNhaCungCap.Enabled = False
        txtMaNCC.Focus()
    End Sub

    Private Sub btnXoaTTNCC_Click(sender As Object, e As EventArgs) Handles btnXoaTTNCC.Click
        Xoa()
    End Sub

    Private Sub btnLuuTTNCC_Click(sender As Object, e As EventArgs) Handles btnLuuTTNCC.Click
        If TestData() Then
            If flag = True Then
                Them()
            Else
                Sua()
            End If
            LockTextbox(False)
            LockButton(True)
            dgvTTNhaCungCap.Enabled = True
            MsgBox("cập nhật dữ liệu thành công", MsgBoxStyle.Information, "Thông Báo !")
        End If
    End Sub

    Private Sub btnKhongLuuTTNCC_Click(sender As Object, e As EventArgs) Handles btnKhongLuuTTNCC.Click
        LoadDS()
        LockTextbox(False)
        LockButton(True)
        dgvTTNhaCungCap.Enabled = True
    End Sub

    Private Sub btnThoat_Click(sender As Object, e As EventArgs) Handles btnThoat.Click
        Me.Close()
    End Sub

    Private Sub dgvTTNhaCungCap_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvTTNhaCungCap.CellContentClick
        HienThi()
    End Sub

    Private Sub dgvTTNhaCungCap_SelectionChanged(sender As Object, e As EventArgs) Handles dgvTTNhaCungCap.SelectionChanged
        HienThi()
    End Sub
End Class